package com.bfly.mall.advert.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.bfly.mall.advert.entity.CouponRangeBind;
import com.bfly.mall.advert.enums.CouponUseRange;
import com.bfly.mall.advert.enums.CouponUseStatus;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户领取优惠卷记录列表DTO
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/9/15 20:48
 */
public class CouponGetRecordUserListDTO implements Serializable {

    private static final long serialVersionUID = 139625493287287475L;
    private int id;

    /**
     * 优惠卷名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/11/16 20:21
     */
    private String name;

    /**
     * 优惠卷券码
     * @author 长沙商脉科技有限公司
     * @date 2020/12/1 12:40
     */
    private String code;

    /**
     * 使用状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/11/16 20:21
     * @see CouponUseStatus
     */
    private int status;

    /**
     * 折扣
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/11/16 20:21
     */
    private BigDecimal discount;

    /**
     * 最低消费
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/11/16 20:21
     */
    private BigDecimal minimums;

    /**
     * 有效开始时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/11/16 20:22
     */
    @JSONField(format = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 失效时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/11/16 20:22
     */
    @JSONField(format = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 使用日期
     * @author 长沙商脉科技有限公司
     * @date 2020/12/24 14:44
     */
    private Date useDate;

    /**
     * 领取日期
     * @author 长沙商脉科技有限公司
     * @date 2020/12/24 14:44
     */
    private Date pickDate;

    /**
     * 用户昵称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/24 14:42
     */
    private String nickName;

    /**
     * 用户头像
     * @author 长沙商脉科技有限公司
     * @date 2020/12/24 14:43
     */
    private String avatarUrl;

    /**
     * 状态名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/20 23:00
     */
    public String getStatusName() {
        CouponUseStatus status = CouponUseStatus.getStatus(getStatus());
        return status != null ? status.getName() : "";
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public BigDecimal getMinimums() {
        return minimums;
    }

    public void setMinimums(BigDecimal minimums) {
        this.minimums = minimums;
    }

    public Date getUseDate() {
        return useDate;
    }

    public void setUseDate(Date useDate) {
        this.useDate = useDate;
    }

    public Date getPickDate() {
        return pickDate;
    }

    public void setPickDate(Date pickDate) {
        this.pickDate = pickDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getAvatarUrl() {
        return avatarUrl;
    }

    public void setAvatarUrl(String avatarUrl) {
        this.avatarUrl = avatarUrl;
    }
}
